
package server.commands;



import client.MapleCharacter;
import client.MapleCharacterUtil;
import client.MapleClient;
import client.inventory.Item;
import client.inventory.MapleInventory;
import client.inventory.MapleInventoryType;
import client.skills.SkillFactory;
import configs.Config;
import configs.OpcodeConfig;
import configs.ServerConfig;
import constants.ServerConstants;
import handling.MapleServerHandler;
import handling.channel.ChannelServer;
import handling.opcode.CashShopOpcode;
import handling.opcode.RecvPacketOpcode;
import handling.opcode.SendPacketOpcode;
import handling.world.WorldBroadcastService;
import handling.world.WorldFindService;
import scripting.handler.HandlerScriptManager;
import scripting.npc.NPCScriptManager;
import scripting.portal.PortalScriptManager;
import scripting.reactor.ReactorScriptManager;
import server.*;
import server.Timer;
import server.life.MapleMonsterInformationProvider;
import server.shop.MapleShopFactory;
import tools.MaplePacketCreator;
import tools.StringUtil;
import tools.packet.UIPacket;
import tools.performance.CPUSampler;

import java.awt.*;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;
import java.util.List;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.ScheduledThreadPoolExecutor;



















































 public class AdminCommand
         {

    public static PlayerGMRank getPlayerLevelRequired() {
        /*   56 */
        return PlayerGMRank.ADMIN;

    }



       public static class StripEveryone
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /*   64 */
            ChannelServer cs = c.getChannelServer();
            /*   65 */
            for (MapleCharacter mchr : cs.getPlayerStorage().getAllCharacters()) {
                /*   66 */
                if (mchr.isGM()) {

                    continue;

                }
                /*   69 */
                MapleInventory equipped = mchr.getInventory(MapleInventoryType.EQUIPPED);
                /*   70 */
                MapleInventory equip = mchr.getInventory(MapleInventoryType.EQUIP);
                /*   71 */
                List<Short> ids = new ArrayList<>();
                /*   72 */
                for (Item item : equipped.newList()) {
                    /*   73 */
                    ids.add(Short.valueOf(item.getPosition()));

                }
                /*   75 */
                for (Iterator<Short> iterator = ids.iterator(); iterator.hasNext(); ) {
                    short id = ((Short) iterator.next()).shortValue();
                    /*   76 */
                    MapleInventoryManipulator.unequip(mchr.getClient(), id, equip.getNextFreeSlot());
                }


            }
            /*   79 */
            return 1;

        }

    }



       public static class MesoEveryone
             extends CommandExecute
             {

        public String getParameter() {
            /*   88 */
            return "<金币数量>";

        }



        public int execute(MapleClient c, String[] splitted) {

            int meso;
            /*   93 */
            if (splitted.length < 2) {
                /*   94 */
                c.getPlayer().dropMessage(6, "用法: !MesoEveryone " + getParameter());
                /*   95 */
                return 0;

            }


            try {
                /*   99 */
                meso = Integer.parseInt(splitted[1]);
                /*  100 */
            } catch (NumberFormatException nfe) {
                /*  101 */
                c.getPlayer().dropMessage(6, "输入的金币数量无效.");
                /*  102 */
                return 0;

            }
            /*  104 */
            for (ChannelServer cserv : ChannelServer.getAllInstances()) {
                /*  105 */
                for (MapleCharacter mch : cserv.getPlayerStorage().getAllCharacters()) {
                    /*  106 */
                    mch.gainMeso(meso, true);

                }

            }
            /*  109 */
            return 1;

        }

    }



       public static class testdistance
             extends CommandExecute
             {

        public String getParameter() {
            /*  118 */
            return "<x坐标> <y坐标>";

        }




        public int execute(MapleClient c, String[] splitted) {
            /*  123 */
            if (splitted.length < 2) {
                /*  124 */
                c.getPlayer().dropMessage(6, "用法: !测试距离 " + getParameter() + "  说明: 此命令可以测试输入的坐标信息和角色当前坐标的距离");
                /*  125 */
                return 0;

            }
            /*  127 */
            int x = Integer.parseInt(splitted[1]);
            /*  128 */
            int y = Integer.parseInt(splitted[2]);
            /*  129 */
            Point test = new Point(x, y);
            /*  130 */
            c.getPlayer().dropMessage(6, "当前距离: " + c.getPlayer().getTruePosition().distanceSq(test));
            /*  131 */
            return 1;

        }

    }



       public static class CashEveryone
             extends CommandExecute
             {

        public String getParameter() {
            /*  140 */
            return "<点卷类型1-2> <点卷数量>";

        }




        public int execute(MapleClient c, String[] splitted) {
            /*  145 */
            if (splitted.length < 2) {
                /*  146 */
                c.getPlayer().dropMessage(6, "用法: !CashEveryone " + getParameter());
                /*  147 */
                return 0;

            }
            /*  149 */
            int type = Integer.parseInt(splitted[1]);
            /*  150 */
            int quantity = Integer.parseInt(splitted[2]);
            /*  151 */
            if (type <= 0 || type > 2) {
                /*  152 */
                type = 2;

            }
            /*  154 */
            int ret = 0;
            /*  155 */
            StringBuilder sb = new StringBuilder();
            /*  156 */
            for (ChannelServer cserv : ChannelServer.getAllInstances()) {
                /*  157 */
                for (MapleCharacter mch : cserv.getPlayerStorage().getAllCharacters()) {
                    /*  158 */
                    mch.modifyCSPoints(type, quantity, false);
                    /*  159 */
                    mch.dropMessage(-11, "[系统提示] 恭喜您获得管理员赠送给您的" + ((type == 1) ? "点券 " : " 抵用券 ") + quantity + " 点.");
                    /*  160 */
                    ret++;
                    /*  161 */
                    sb.append(MapleCharacterUtil.makeMapleReadable(mch.getName()));
                    /*  162 */
                    sb.append(", ");

                }

            }
            /*  165 */
            c.getPlayer().dropMessage(6, "以下是获得" + ((type == 1) ? "点券 " : " 抵用券 ") + "的玩家名单:");
            /*  166 */
            c.getPlayer().dropMessage(6, sb.toString());
            /*  167 */
            c.getPlayer().dropMessage(6, "命令使用成功，当前共有: " + ret + " 个玩家获得: " + quantity + " 点的" + ((type == 1) ? "点券 " : " 抵用券 ") + " 总计: " + (ret * quantity));
            /*  168 */
            return 1;

        }

    }



       public static class PayEveryone
             extends CommandExecute
             {

        public String getParameter() {
            /*  177 */
            return "<数量>";

        }



        public int execute(MapleClient c, String[] splitted) {

            int hb;
            /*  182 */
            if (splitted.length < 2) {
                /*  183 */
                c.getPlayer().dropMessage(6, "用法: !PayEveryone " + getParameter());
                /*  184 */
                return 0;

            }


            try {
                /*  188 */
                hb = Integer.parseInt(splitted[1]);
                /*  189 */
            } catch (NumberFormatException nfe) {
                /*  190 */
                c.getPlayer().dropMessage(6, "输入的金币数量无效.");
                /*  191 */
                return 0;

            }
            /*  193 */
            for (ChannelServer cserv : ChannelServer.getAllInstances()) {
                /*  194 */
                for (MapleCharacter mch : cserv.getPlayerStorage().getAllCharacters()) {
                    /*  195 */
                    mch.gainRMB(hb);
                    /*  196 */
                    mch.dropMessage(-11, "[系统提示] 恭喜您获得管理员赠送给您的冒险币" + hb + "个。");

                }

            }
            /*  199 */
            return 1;

        }

    }



       public static class ExpRate
             extends CommandExecute
             {

        public String getParameter() {
            /*  208 */
            return "<倍率> [all] //[可选]填了all表示全服生效";

        }




        public int execute(MapleClient c, String[] splitted) {
            /*  213 */
            if (splitted.length > 1) {
                /*  214 */
                int rate = Integer.parseInt(splitted[1]);
                /*  215 */
                if (splitted.length > 2 && splitted[2].equalsIgnoreCase("all")) {
                    /*  216 */
                    for (ChannelServer cserv : ChannelServer.getAllInstances()) {
                        /*  217 */
                        cserv.setExpRate(rate);

                    }

                } else {
                    /*  220 */
                    c.getChannelServer().setExpRate(rate);

                }
                /*  222 */
                c.getPlayer().dropMessage(6, "经验倍率已经修改为: " + rate + "倍.");

            } else {
                /*  224 */
                c.getPlayer().dropMessage(6, "用法: !exprate " + getParameter());

            }
            /*  226 */
            return 1;

        }

    }



       public static class MesoRate
             extends CommandExecute
             {

        public String getParameter() {
            /*  235 */
            return "<倍率> [all] //[可选]填了all表示全服生效";

        }




        public int execute(MapleClient c, String[] splitted) {
            /*  240 */
            if (splitted.length > 1) {
                /*  241 */
                int rate = Integer.parseInt(splitted[1]);
                /*  242 */
                if (splitted.length > 2 && splitted[2].equalsIgnoreCase("all")) {
                    /*  243 */
                    for (ChannelServer cserv : ChannelServer.getAllInstances()) {
                        /*  244 */
                        cserv.setMesoRate(rate);

                    }

                } else {
                    /*  247 */
                    c.getChannelServer().setMesoRate(rate);

                }
                /*  249 */
                c.getPlayer().dropMessage(6, "金币爆率已经修改为: " + rate + "倍.");

            } else {
                /*  251 */
                c.getPlayer().dropMessage(6, "用法: !mesorate " + getParameter());

            }
            /*  253 */
            return 1;

        }

    }



       public static class DropRate
             extends CommandExecute
             {

        public String getParameter() {
            /*  262 */
            return "<倍率> [all] //[可选]填了all表示全服生效";

        }




        public int execute(MapleClient c, String[] splitted) {
            /*  267 */
            if (splitted.length > 1) {
                /*  268 */
                int rate = Integer.parseInt(splitted[1]);
                /*  269 */
                if (splitted.length > 2 && splitted[2].equalsIgnoreCase("all")) {
                    /*  270 */
                    for (ChannelServer cserv : ChannelServer.getAllInstances()) {
                        /*  271 */
                        cserv.setDropRate(rate);

                    }

                } else {
                    /*  274 */
                    c.getChannelServer().setDropRate(rate);

                }
                /*  276 */
                c.getPlayer().dropMessage(6, "怪物爆率已经修改为: " + rate + "倍.");

            } else {
                /*  278 */
                c.getPlayer().dropMessage(6, "用法: !droprate " + getParameter());

            }
            /*  280 */
            return 1;

        }

    }



       public static class dbexp
             extends CommandExecute
             {

        public String getParameter() {
            /*  289 */
            return "<1-2> //1为关闭活动经验，2为开启活动经验。";

        }




        public int execute(MapleClient c, String[] splitted) {
            /*  294 */
            int change = Integer.parseInt(splitted[1]);
            /*  295 */
            if (change == 1 || change == 2) {
                /*  296 */
                c.getPlayer().dropMessage(6, "以前 - 经验: " + c.getChannelServer().getExpRate() + " 金币: " + c.getChannelServer().getMesoRate() + " 爆率: " + c.getChannelServer().getDropRate());
                /*  297 */
                for (ChannelServer cserv : ChannelServer.getAllInstances()) {
                    /*  298 */
                    cserv.setDoubleExp(change);

                }
                /*  300 */
                c.getPlayer().dropMessage(6, "现在 - 经验: " + c.getChannelServer().getExpRate() + " 金币: " + c.getChannelServer().getMesoRate() + " 爆率: " + c.getChannelServer().getDropRate());
                /*  301 */
                return 1;

            }
            /*  303 */
            c.getPlayer().dropMessage(6, "输入的数字无效，用法: !dbexp " + getParameter());
            /*  304 */
            return 0;

        }

    }




       public static class expinfo
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /*  314 */
            c.getPlayer().dropMessage(5, "当前游戏设置信息:");
            /*  315 */
            for (ChannelServer cserv : ChannelServer.getAllInstances()) {








                /*  324 */
                String rateStr = "频道 " + cserv.getChannel() + " 经验: " + cserv.getExpRate() + " 金币: " + cserv.getMesoRate() + " 爆率: " + cserv.getDropRate() + " 活动: " + cserv.getDoubleExp();
                /*  325 */
                c.getPlayer().dropMessage(5, rateStr);

            }
            /*  327 */
            return 1;

        }

    }



       public static class DCAll
             extends CommandExecute
             {

        public String getParameter() {
            /*  336 */
            return "<m/c/w> m:当前地图(默认) c:当前频道 w:全服玩家";

        }




        public int execute(MapleClient c, String[] splitted) {
            /*  341 */
            int range = -1;
            /*  342 */
            switch (splitted[1]) {

                case "m":
                    /*  344 */
                    range = 0;

                    break;

                case "c":
                    /*  347 */
                    range = 1;

                    break;

                case "w":
                    /*  350 */
                    range = 2;

                    break;

            }
            /*  353 */
            if (range == -1) {
                /*  354 */
                range = 1;

            }
            /*  356 */
            if (range == 0) {
                /*  357 */
                c.getPlayer().getMap().disconnectAll();
                /*  358 */
                c.getPlayer().dropMessage(5, "已成功断开当前地图所有玩家的连接.");
                /*  359 */
            } else if (range == 1) {
                /*  360 */
                c.getChannelServer().getPlayerStorage().disconnectAll(true);
                /*  361 */
                c.getPlayer().dropMessage(5, "已成功断开当前频道所有玩家的连接.");
                /*  362 */
            } else if (range == 2) {
                /*  363 */
                for (ChannelServer cserv : ChannelServer.getAllInstances()) {
                    /*  364 */
                    cserv.getPlayerStorage().disconnectAll(true);

                }
                /*  366 */
                c.getPlayer().dropMessage(5, "已成功断开当前游戏所有玩家的连接.");

            }
            /*  368 */
            return 1;

        }

    }




       public static class sodrop
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /*  378 */
            NPCScriptManager.getInstance().start(c, 9010000, "1");
            /*  379 */
            return 1;

        }

    }


       public static class openNpcs
             extends CommandExecute {

        public int execute(MapleClient c, String[] splitted) {
            /*  386 */
            c.getPlayer().openNpc(Integer.parseInt(splitted[0]), splitted[1]);
            /*  387 */
            return 0;

        }

    }



       public static class Shutdown
             extends CommandExecute
             {
        /*  395 */     protected static Thread t = null;




        public int execute(MapleClient c, String[] splitted) {
            /*  399 */
            c.getPlayer().dropMessage(6, "游戏即将关闭...");
            /*  400 */
            if (t == null || !t.isAlive()) {
                /*  401 */
                t = new Thread((Runnable) ShutdownServer.getInstance());
                /*  402 */
                ShutdownServer.getInstance().shutdown();
                /*  403 */
                t.start();

            } else {
                /*  405 */
                c.getPlayer().dropMessage(6, "已经使用过一次这个命令，暂时无法使用.");

            }
            /*  407 */
            return 1;

        }

    }



       public static class ShutdownTime
             extends Shutdown
             {

        public String getParameter() {
            /*  416 */
            return "[分钟]";

        }


        /*  419 */     private static ScheduledFuture<?> ts = null;
        /*  420 */     private int minutesLeft = 0;




        public int execute(MapleClient c, String[] splitted) {
            /*  424 */
            if (splitted.length < 2) {
                /*  425 */
                c.getPlayer().dropMessage(6, "输入的数字无效，用法: !ShutdownTime " + getParameter());
                /*  426 */
                return 0;

            }
            /*  428 */
            this.minutesLeft = Integer.parseInt(splitted[1]);
            /*  429 */
            c.getPlayer().dropMessage(6, "游戏将在 " + this.minutesLeft + " 分钟之后关闭...");
            /*  430 */
            if (ts == null && (t == null || !t.isAlive())) {
                /*  431 */
                t = new Thread((Runnable) ShutdownServer.getInstance());
                /*  432 */
                ts = Timer.GuiTimer.getInstance().register(() -> {
                    if (this.minutesLeft == 0) {
                        ShutdownServer.getInstance().shutdown();
                        t.start();
                        ts.cancel(false);
                        return;
                    }
                    WorldBroadcastService.getInstance().broadcastMessage(UIPacket.clearMidMsg());
                    WorldBroadcastService.getInstance().broadcastMessage(UIPacket.getMidMsg("游戏将于 " + this.minutesLeft + " 分钟之后关闭维护.请玩家安全下线.", true, 0));
                    WorldBroadcastService.getInstance().broadcastMessage(MaplePacketCreator.serverNotice(" 游戏将于 " + this.minutesLeft + " 分钟之后关闭维护.请玩家安全下线."));
                    this.minutesLeft--;
                }, 60000L);






            }

            else {





                /*  445 */
                c.getPlayer().dropMessage(6, "已经使用过一次这个命令，暂时无法使用.");

            }
            /*  447 */
            return 1;

        }

    }



       public static class StartProfiling
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /*  456 */
            CPUSampler sampler = CPUSampler.getInstance();
            /*  457 */
            sampler.addIncluded("src/org/mxd/client");
            /*  458 */
            sampler.addIncluded("src/org/mxd/constants");
            /*  459 */
            sampler.addIncluded("src/org/mxd/database");
            /*  460 */
            sampler.addIncluded("src/org/mxd/handling");
            /*  461 */
            sampler.addIncluded("src/org/mxd/provider");
            /*  462 */
            sampler.addIncluded("src/org/mxd/scripting");
            /*  463 */
            sampler.addIncluded("src/org/mxd/server");
            /*  464 */
            sampler.addIncluded("src/org/mxd/tools");
            /*  465 */
            sampler.start();
            /*  466 */
            c.getPlayer().dropMessage(6, "已经开启服务端性能监测.");
            /*  467 */
            return 1;

        }

    }



       public static class StopProfiling
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /*  476 */
            CPUSampler sampler = CPUSampler.getInstance();

            try {
                /*  478 */
                String filename = "odinprofile.txt";
                /*  479 */
                if (splitted.length > 1) {
                    /*  480 */
                    filename = splitted[1];

                }
                /*  482 */
                File file = new File(filename);
                /*  483 */
                if (file.exists()) {
                    /*  484 */
                    c.getPlayer().dropMessage(6, "输入的文件名字已经存在，请重新输入1个新的文件名。");
                    /*  485 */
                    return 0;

                }
                /*  487 */
                sampler.stop();
                /*  488 */
                FileWriter fw = new FileWriter(file);
                /*  489 */
                sampler.save(fw, 1, 10);
                /*  490 */
                fw.close();
                /*  491 */
            } catch (IOException e) {
                /*  492 */
                System.err.println("保存文件出错." + e);

            }
            /*  494 */
            sampler.reset();
            /*  495 */
            c.getPlayer().dropMessage(6, "已经停止服务端性能监测.");
            /*  496 */
            return 1;

        }

    }



       public static class Subcategory
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /*  505 */
            c.getPlayer().setSubcategory(Byte.parseByte(splitted[1]));
            /*  506 */
            return 1;

        }

    }


       public static class gainMeso
             extends CommandExecute
             {

        public String getParameter() {
            /*  514 */
            return "[数量] //默认为配置文件设定的金币最大值";

        }




        public int execute(MapleClient c, String[] splitted) {
            /*  519 */
            long meso = ServerConfig.CHANNEL_PLAYER_MAXMESO;
            /*  520 */
            if (splitted.length > 1) {
                /*  521 */
                meso = Integer.parseInt(splitted[1]);

            }
            /*  523 */
            c.getPlayer().gainMeso(Math.min(ServerConfig.CHANNEL_PLAYER_MAXMESO, meso + c.getPlayer().getMeso()), true);
            /*  524 */
            return 1;

        }

    }


       public static class gainCash
             extends CommandExecute
             {

        public String getParameter() {
            /*  532 */
            return "<点券数量>";

        }



        public int execute(MapleClient c, String[] splitted) {
            /*  536 */
            if (splitted.length < 2) {
                /*  537 */
                c.getPlayer().dropMessage(5, "用法: !gainCash " + getParameter());
                /*  538 */
                return 0;

            }
            /*  540 */
            c.getPlayer().modifyCSPoints(1, Integer.parseInt(splitted[1]), true);
            /*  541 */
            return 1;

        }

    }


       public static class gainCash2
             extends CommandExecute
             {

        public String getParameter() {
            /*  549 */
            return "<抵用券数量>";

        }



        public int execute(MapleClient c, String[] splitted) {
            /*  553 */
            if (splitted.length < 2) {
                /*  554 */
                c.getPlayer().dropMessage(5, "请输入数量.");
                /*  555 */
                return 0;

            }
            /*  557 */
            c.getPlayer().modifyCSPoints(2, Integer.parseInt(splitted[1]), true);
            /*  558 */
            return 1;

        }

    }


       public static class GainP
             extends CommandExecute
             {

        public String getParameter() {
            /*  566 */
            return "<活动点数>";

        }



        public int execute(MapleClient c, String[] splitted) {
            /*  570 */
            if (splitted.length < 2) {
                /*  571 */
                c.getPlayer().dropMessage(5, "用法: !gainCash2 " + getParameter());
                /*  572 */
                return 0;

            }
            /*  574 */
            c.getPlayer().modifyCSPoints(2, Integer.parseInt(splitted[1]), true);
            /*  575 */
            return 1;

        }

    }


       public static class GainVP
             extends CommandExecute
             {

        public String getParameter() {
            /*  583 */
            return "<活动点数>";

        }



        public int execute(MapleClient c, String[] splitted) {
            /*  587 */
            if (splitted.length < 2) {
                /*  588 */
                c.getPlayer().dropMessage(5, "用法: !GainP " + getParameter());
                /*  589 */
                return 0;

            }
            /*  591 */
            c.getPlayer().setPoints(c.getPlayer().getPoints() + Integer.parseInt(splitted[1]));
            /*  592 */
            return 1;

        }

    }



       public static class resetpackid
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /*  601 */
            if (ServerConstants.isShowPacket()) {
                /*  602 */
                OpcodeConfig.load();

            }
            /*  604 */
            RecvPacketOpcode.reloadValues();
            /*  605 */
            SendPacketOpcode.reloadValues();
            /*  606 */
            CashShopOpcode.reloadValues();
            /*  607 */
            c.getPlayer().dropMessage(5, "重新获取包头完成.");
            /*  608 */
            return 1;

        }

    }



       public static class resetdrop
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /*  617 */
            MapleMonsterInformationProvider.getInstance().clearDrops();
            /*  618 */
            ReactorScriptManager.getInstance().clearDrops();
            /*  619 */
            c.getPlayer().dropMessage(5, "重新加载爆率完成.");
            /*  620 */
            return 1;

        }

    }



       public static class resetportal
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /*  629 */
            PortalScriptManager.getInstance().clearScripts();
            /*  630 */
            c.getPlayer().dropMessage(5, "重新加载传送点脚本完成.");
            /*  631 */
            return 1;

        }

    }



       public static class resetshop
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /*  640 */
            MapleShopFactory.getInstance().clear();
            /*  641 */
            c.getPlayer().dropMessage(5, "重新加载商店贩卖道具完成.");
            /*  642 */
            return 1;

        }

    }


       public static class resetEvent
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /*  650 */
            Config.load();
            /*  651 */
            for (ChannelServer instance : ChannelServer.getAllInstances()) {
                /*  652 */
                instance.reloadEvents();

            }
            /*  654 */
            c.getPlayer().dropMessage(5, "重新加载活动脚本完成.");
            /*  655 */
            return 1;

        }

    }



       public static class testPacket
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /*  664 */
            c.StartWindow();
            /*  665 */
            return 1;

        }

    }



       public static class resetSkillCopy
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /*  674 */
            SkillFactory.loadMemorySkills();
            /*  675 */
            c.getPlayer().dropMessage(5, "加载复制技能完成...");
            /*  676 */
            return 1;

        }

    }


       public static class 重载封包禁止
             extends CommandExecute {

        public int execute(MapleClient c, String[] splitted) {
            /*  683 */
            OpcodeConfig.load();
            /*  684 */
            return 1;

        }

    }



       public static class online
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /*  693 */
            int total = 0;
            /*  694 */
            c.getPlayer().dropMessage(6, "---------------------------------------------------------------------------------------");
            /*  695 */
            for (ChannelServer cserv : ChannelServer.getAllInstances()) {
                /*  696 */
                int curConnected = cserv.getConnectedClients();
                /*  697 */
                c.getPlayer().dropMessage(6, "频道: " + cserv.getChannel() + " 在线人数: " + curConnected);
                /*  698 */
                total += curConnected;
                /*  699 */
                for (MapleCharacter chr : cserv.getPlayerStorage().getAllCharacters()) {
                    /*  700 */
                    if (chr != null) {
                        /*  701 */
                        StringBuilder ret = new StringBuilder();
                        /*  702 */
                        ret.append(StringUtil.getRightPaddedStr(chr.getName(), ' ', 13));
                        /*  703 */
                        ret.append(" ID: ");
                        /*  704 */
                        ret.append(chr.getId());
                        /*  705 */
                        ret.append(" 等级: ");
                        /*  706 */
                        ret.append(StringUtil.getRightPaddedStr(String.valueOf(chr.getLevel()), ' ', 3));
                        /*  707 */
                        if (chr.getMap() != null) {
                            /*  708 */
                            ret.append(" 地图: ");
                            /*  709 */
                            ret.append(chr.getMapId());
                            /*  710 */
                            ret.append(" - ");
                            /*  711 */
                            ret.append(chr.getMap().getMapName());

                        }
                        /*  713 */
                        c.getPlayer().dropMessage(6, ret.toString());

                    }

                }

            }
            /*  717 */
            c.getPlayer().dropMessage(6, "当前服务器总计在线: " + total);
            /*  718 */
            c.getPlayer().dropMessage(6, "---------------------------------------------------------------------------------------");
            /*  719 */
            return 1;

        }

    }







       public static class addTraitExp
             extends CommandExecute
             {

        public String getParameter() {
            /*  732 */
            return "<数量>";

        }




        public int execute(MapleClient c, String[] splitted) {
            /*  737 */
            if (splitted.length < 2) {
                /*  738 */
                c.getPlayer().dropMessage(5, "用法: !addTraitExp " + getParameter());
                /*  739 */
                return 0;

            }
            /*  741 */
            c.getPlayer().addTraitExp(Integer.parseInt(splitted[1]));
            /*  742 */
            return 1;

        }

    }



       public static class setTraitExp
             extends CommandExecute
             {

        public String getParameter() {
            /*  751 */
            return "<数量>";

        }




        public int execute(MapleClient c, String[] splitted) {
            /*  756 */
            if (splitted.length < 2) {
                /*  757 */
                c.getPlayer().dropMessage(5, "用法: !setTraitExp " + getParameter());
                /*  758 */
                return 0;

            }
            /*  760 */
            c.getPlayer().setTraitExp(Integer.parseInt(splitted[1]));
            /*  761 */
            return 1;

        }

    }



       public static class chacopy
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /*  770 */
            List<String> msgs = new ArrayList<>();
            /*  771 */
            Map<Integer, CopyItemInfo> checkItems = new LinkedHashMap<>();
            /*  772 */
            for (ChannelServer cserv : ChannelServer.getAllInstances()) {
                /*  773 */
                for (MapleCharacter player : cserv.getPlayerStorage().getAllCharacters()) {
                    /*  774 */
                    if (player != null && player.getMap() != null) {

                        /*  776 */
                        check(player.getInventory(MapleInventoryType.EQUIP), player, checkItems, msgs);

                        /*  778 */
                        check(player.getInventory(MapleInventoryType.EQUIPPED), player, checkItems, msgs);

                    }

                }

            }
            /*  782 */
            checkItems.clear();
            /*  783 */
            if (msgs.size() > 0) {
                /*  784 */
                c.getPlayer().dropMessage(5, "检测完成，共有: " + msgs.size() + " 个复制信息");

                /*  786 */
                for (String s : msgs) {
                    /*  787 */
                    c.getPlayer().dropMessage(5, s);

                }

                /*  790 */
                c.getPlayer().dropMessage(5, "以上信息为拥有复制道具的玩家.");

            } else {
                /*  792 */
                c.getPlayer().dropMessage(5, "未检测到游戏中的角色有复制的道具信息.");

            }
            /*  794 */
            return 1;

        }



        public void check(MapleInventory equip, MapleCharacter player, Map<Integer, CopyItemInfo> checkItems, List<String> msgs) {
            /*  798 */
            MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
            /*  799 */
            for (Item item : equip.list()) {
                /*  800 */
                if (item.getEquipOnlyId() > 0) {
                    /*  801 */
                    CopyItemInfo ret = new CopyItemInfo(item.getItemId(), player.getId(), player.getName());
                    /*  802 */
                    if (checkItems.containsKey(Integer.valueOf(item.getEquipOnlyId()))) {
                        /*  803 */
                        ret = checkItems.get(Integer.valueOf(item.getEquipOnlyId()));
                        /*  804 */
                        if (ret.itemId == item.getItemId()) {
                            /*  805 */
                            if (ret.isFirst()) {
                                /*  806 */
                                ret.setFirst(false);
                                /*  807 */
                                msgs.add("角色: " + StringUtil.getRightPaddedStr(ret.name, ' ', 13) + " 角色ID: " + StringUtil.getRightPaddedStr(String.valueOf(ret.chrId), ' ', 6) + " 道具: " + ret.itemId + " - " + ii.getName(ret.itemId) + " 唯一ID: " + item.getEquipOnlyId());
                                continue;

                            }
                            /*  809 */
                            msgs.add("角色: " + StringUtil.getRightPaddedStr(player.getName(), ' ', 13) + " 角色ID: " + StringUtil.getRightPaddedStr(String.valueOf(player.getId()), ' ', 6) + " 道具: " + item.getItemId() + " - " + ii.getName(item.getItemId()) + " 唯一ID: " + item.getEquipOnlyId());

                        }

                        continue;

                    }
                    /*  813 */
                    checkItems.put(Integer.valueOf(item.getEquipOnlyId()), ret);

                }

            }

        }

    }




       public static class soprocess
             extends CommandExecute
             {

        public String getParameter() {
            /*  825 */
            return "[玩家名称] //默认查看自己";

        }




        public int execute(MapleClient c, String[] splitted) {
            /*  830 */
            if (splitted.length < 2) {
                /*  831 */
                c.getPlayer().dropMessage(6, "正在查看自己的进程信息.");
                /*  832 */
                c.announce(MaplePacketCreator.SystemProcess());
                /*  833 */
                return 0;

            }
            /*  835 */
            String name = splitted[1];
            /*  836 */
            MapleCharacter chrs = c.getChannelServer().getPlayerStorage().getCharacterByName(splitted[1]);
            /*  837 */
            if (chrs == null) {
                /*  838 */
                c.getPlayer().dropMessage(6, "当前频道没有找到玩家[" + name + "]的信息.");

            } else {
                /*  840 */
                c.getPlayer().dropMessage(6, "正在查看玩家[" + name + "]的进程信息.");
                /*  841 */
                chrs.getClient().announce(MaplePacketCreator.SystemProcess());

            }
            /*  843 */
            return 1;

        }

    }



       public static class resetconfig
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /*  852 */
            Config.load();
            /*  853 */
            c.getPlayer().dropMessage(6, "重新加载配置文件完成.");
            /*  854 */
            return 1;

        }

    }



       public static class uninfo
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /*  863 */
            ServerConstants.setShowGMMessage(!ServerConstants.isShowGMMessage());
            /*  864 */
            c.getPlayer().dropMessage(6, "显示异常信息功能：" + (ServerConstants.isShowGMMessage() ? "已开启" : "已关闭"));
            /*  865 */
            return 1;

        }

    }






       public static class 重载商城封包
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /*  877 */
            c.getPlayer().dropMessage(6, "重新加载商城封包完成.");
            /*  878 */
            return 1;

        }

    }


       public static class adminlogin
             extends CommandExecute
             {

        public String getParameter() {
            /*  886 */
            return "<1-2> //1为关闭管理登陆模式，2为开启管理登陆模式";

        }



        public int execute(MapleClient c, String[] splitted) {
            /*  890 */
            int change = Integer.parseInt(splitted[1]);
            /*  891 */
            if (change == 1 || change == 2) {
                /*  892 */
                c.getPlayer().dropMessage(6, "以前 - 是否管理登陆: " + ServerConfig.WORLD_ONLYADMIN);
                /*  893 */
                ServerConfig.WORLD_ONLYADMIN = (change == 2);
                /*  894 */
                c.getPlayer().dropMessage(6, "现在 - 是否管理登陆: " + ServerConfig.WORLD_ONLYADMIN);
                /*  895 */
                return 1;

            }
            /*  897 */
            c.getPlayer().dropMessage(6, "用法: !adminlogin " + getParameter());
            /*  898 */
            return 0;

        }

    }




       public static class resetspecialdrop
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /*  908 */
            MapleMonsterInformationProvider.getInstance().clearDrops();
            /*  909 */
            c.getPlayer().dropMessage(6, "重新加载特殊爆率完成.");
            /*  910 */
            return 1;

        }

    }



       public static class soequip
             extends CommandExecute
             {

        public String getParameter() {
            /*  919 */
            return "<角色ID> <装备位置>";

        }




        public int execute(MapleClient c, String[] splitted) {
            /*  924 */
            if (splitted.length < 3) {
                /*  925 */
                c.getPlayer().dropMessage(6, "用法: !查看角色装备 " + getParameter());
                /*  926 */
                return 0;

            }
            /*  928 */
            if (splitted[1].matches("/^([0-9])*$") || splitted[2].matches("/^([0-9])*$")) {
                /*  929 */
                c.getPlayer().dropMessage(6, "输入错误，角色ID和装备位置必须为数字！");
                /*  930 */
                return 0;

            }
            /*  932 */
            int victimId = Integer.parseInt(splitted[1]);
            /*  933 */
            int position = Integer.parseInt(splitted[2]);
            /*  934 */
            int ch = WorldFindService.getInstance().findChannel(victimId);
            /*  935 */
            if (ch <= 0) {
                /*  936 */
                c.getPlayer().dropMessage(6, "找不到该角色ID为: " + victimId + " 的信息.");
                /*  937 */
                return 0;

            }
            /*  939 */
            MapleCharacter victim = ChannelServer.getInstance(ch).getPlayerStorage().getCharacterById(victimId);
            /*  940 */
            if (victim != null) {
                /*  941 */
                byte pos = (byte) (position * ((position > 0) ? -1 : 1));
                /*  942 */
                Item item = victim.getInventory(MapleInventoryType.EQUIPPED).getItem((short) pos);
                /*  943 */
                if (item == null) {
                    /*  944 */
                    c.getPlayer().dropMessage(6, "[查看装备] 玩家 : " + victim.getName() + " ID: " + victimId + " 身上装备位置为 " + position + " 空或者输入位置错误");
                    /*  945 */
                    return 0;

                }
                /*  947 */
                MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
                /*  948 */
                c.announce(MaplePacketCreator.getGachaponMega("[查看装备]", " : 玩家 " + victim.getName() + " 身上装备位置为 " + position + " 的装备{" + ii.getName(item.getItemId()) + "}信息..", item, 3, c.getChannel()));
                /*  949 */
                return 1;

            }
            /*  951 */
            c.getPlayer().dropMessage(6, "找不到该角色ID为: " + victimId + " 的信息.");

            /*  953 */
            return 0;

        }

    }



       public static class warpxy
             extends CommandExecute
             {

        public String getParameter() {
            /*  962 */
            return "<要传送的坐标点> 或 <X坐标> <Y坐标>";

        }




        public int execute(MapleClient c, String[] splitted) {
            /*  967 */
            if (splitted.length < 2) {
                /*  968 */
                c.getPlayer().dropMessage(5, "用法: !warpxy " + getParameter());
                /*  969 */
                return 0;

            }
            /*  971 */
            if (splitted.length == 2) {

                int portalId;

                try {
                    /*  974 */
                    portalId = Integer.parseInt(splitted[1]);
                    /*  975 */
                } catch (NumberFormatException nfe) {
                    /*  976 */
                    c.getPlayer().dropMessage(6, "输入的传送点ID无效.");
                    /*  977 */
                    return 0;

                }
                /*  979 */
                int maxPortalId = c.getPlayer().getMap().getPortals().size();
                /*  980 */
                MaplePortal portal = c.getPlayer().getMap().getPortal(portalId);
                /*  981 */
                if (portal == null || portalId > maxPortalId) {
                    /*  982 */
                    c.getPlayer().dropMessage(6, "输入的传送点ID[" + portalId + "]无效或者当前地图没这个传送点,当前地图最大传送点为 ：" + maxPortalId);
                    /*  983 */
                    return 0;

                }
                /*  985 */
                c.getPlayer().instantMapWarp(portal.getPosition());

            } else {

                int posX, posY;


                try {
                    /*  990 */
                    posX = Integer.parseInt(splitted[1]);
                    /*  991 */
                } catch (NumberFormatException nfe) {
                    /*  992 */
                    c.getPlayer().dropMessage(6, "输入的X坐标无效.");
                    /*  993 */
                    return 0;

                }

                try {
                    /*  996 */
                    posY = Integer.parseInt(splitted[2]);
                    /*  997 */
                } catch (NumberFormatException nfe) {
                    /*  998 */
                    c.getPlayer().dropMessage(6, "输入的Y坐标无效.");
                    /*  999 */
                    return 0;

                }
                /* 1001 */
                Point portalPos = new Point(posX, posY);
                /* 1002 */
                c.getPlayer().instantMapWarp(portalPos);

            }
            /* 1004 */
            return 1;

        }

    }



       public static class sothread
             extends CommandExecute
             {

        public String getParameter() {
            /* 1013 */
            return "[1-7]";

        }

        public int execute(MapleClient c, String[] splitted) {

            int poolId;

            ScheduledThreadPoolExecutor scheduledPool;

            String name;
            /* 1018 */
            if (splitted.length < 2) {
                /* 1019 */
                c.getPlayer().dropMessage(5, "请输入查看线程的参数[1-7]");
                /* 1020 */
                return 0;

            }


            try {
                /* 1024 */
                poolId = Integer.parseInt(splitted[1]);
                /* 1025 */
            } catch (NumberFormatException nfe) {
                /* 1026 */
                c.getPlayer().dropMessage(6, "输入查看的线程ID错误.");
                /* 1027 */
                return 0;

            }


            /* 1031 */
            switch (poolId) {

                case 1:
                    /* 1033 */
                    name = "World Timer";
                    /* 1034 */
                    scheduledPool = Timer.WorldTimer.getInstance().getSES();

                    break;

                case 2:
                    /* 1037 */
                    name = "Etc Timer";
                    /* 1038 */
                    scheduledPool = Timer.EtcTimer.getInstance().getSES();

                    break;

                case 3:
                    /* 1041 */
                    name = "Map Timer";
                    /* 1042 */
                    scheduledPool = Timer.MapTimer.getInstance().getSES();

                    break;

                case 4:
                    /* 1045 */
                    name = "Clone Timer";
                    /* 1046 */
                    scheduledPool = Timer.CloneTimer.getInstance().getSES();

                    break;

                case 5:
                    /* 1049 */
                    name = "Event Timer";
                    /* 1050 */
                    scheduledPool = Timer.EventTimer.getInstance().getSES();

                    break;

                case 6:
                    /* 1053 */
                    name = "Buff Timer";
                    /* 1054 */
                    scheduledPool = Timer.BuffTimer.getInstance().getSES();

                    break;

                case 7:
                    /* 1057 */
                    name = "Ping Timer";
                    /* 1058 */
                    scheduledPool = Timer.PingTimer.getInstance().getSES();

                    break;

                default:
                    /* 1061 */
                    return 0;

            }
            /* 1063 */
            if (scheduledPool != null) {
                /* 1064 */
                c.getPlayer().dropMessage(-11, "--------------------------------------------------------------------");
                /* 1065 */
                c.getPlayer().dropMessage(-11, "查看的线程名称 : " + name + " 输入的参数: " + poolId);
                /* 1066 */
                c.getPlayer().dropMessage(-11, "ActiveCount: ...... " + StringUtil.getRightPaddedStr(scheduledPool.getActiveCount(), ' ', 8) + " 注释: 主动执行任务的线程数");
                /* 1067 */
                c.getPlayer().dropMessage(-11, "CorePoolSize: ..... " + StringUtil.getRightPaddedStr(scheduledPool.getCorePoolSize(), ' ', 8) + " 注释: 核心线程数");
                /* 1068 */
                c.getPlayer().dropMessage(-11, "PoolSize: ......... " + StringUtil.getRightPaddedStr(scheduledPool.getPoolSize(), ' ', 8) + " 注释: 池中的当前启动的核心线程数");
                /* 1069 */
                c.getPlayer().dropMessage(-11, "LargestPoolSize: .. " + StringUtil.getRightPaddedStr(scheduledPool.getLargestPoolSize(), ' ', 8) + " 注释: 曾经同时位于池中的最大核心线程数");
                /* 1070 */
                c.getPlayer().dropMessage(-11, "MaximumPoolSize: .. " + StringUtil.getRightPaddedStr(scheduledPool.getMaximumPoolSize(), ' ', 8) + " 注释: 允许的最大核心线程数线程数");
                /* 1071 */
                c.getPlayer().dropMessage(-11, "CompletedTaskCount: " + StringUtil.getRightPaddedStr(scheduledPool.getCompletedTaskCount(), ' ', 8) + " 注释: 已完成执行的线程任务总数");
                /* 1072 */
                c.getPlayer().dropMessage(-11, "QueuedTaskCount: ..." + StringUtil.getRightPaddedStr(scheduledPool.getQueue().size(), ' ', 8) + " 注释: 使用的任务队列数量");
                /* 1073 */
                c.getPlayer().dropMessage(-11, "TaskCount: ........ " + StringUtil.getRightPaddedStr(scheduledPool.getTaskCount(), ' ', 8) + " 注释: 计划执行的线程任务总数");

            }
            /* 1075 */
            return 1;

        }

    }



       public static class cthread
             extends CommandExecute
             {

        public String getParameter() {
            /* 1084 */
            return "[1-7]";

        }

        public int execute(MapleClient c, String[] splitted) {

            int poolId;

            ScheduledThreadPoolExecutor scheduledPool;

            String name;
            /* 1089 */
            if (splitted.length < 2) {
                /* 1090 */
                c.getPlayer().dropMessage(5, "请输入清理线程的参数[1-7]");
                /* 1091 */
                return 0;

            }


            try {
                /* 1095 */
                poolId = Integer.parseInt(splitted[1]);
                /* 1096 */
            } catch (NumberFormatException nfe) {
                /* 1097 */
                c.getPlayer().dropMessage(6, "输入清理的线程ID错误.");
                /* 1098 */
                return 0;

            }


            /* 1102 */
            switch (poolId) {

                case 1:
                    /* 1104 */
                    name = "World Timer";
                    /* 1105 */
                    scheduledPool = Timer.WorldTimer.getInstance().getSES();

                    break;

                case 2:
                    /* 1108 */
                    name = "Etc Timer";
                    /* 1109 */
                    scheduledPool = Timer.EtcTimer.getInstance().getSES();

                    break;

                case 3:
                    /* 1112 */
                    name = "Map Timer";
                    /* 1113 */
                    scheduledPool = Timer.MapTimer.getInstance().getSES();

                    break;

                case 4:
                    /* 1116 */
                    name = "Clone Timer";
                    /* 1117 */
                    scheduledPool = Timer.CloneTimer.getInstance().getSES();

                    break;

                case 5:
                    /* 1120 */
                    name = "Event Timer";
                    /* 1121 */
                    scheduledPool = Timer.EventTimer.getInstance().getSES();

                    break;

                case 6:
                    /* 1124 */
                    name = "Buff Timer";
                    /* 1125 */
                    scheduledPool = Timer.BuffTimer.getInstance().getSES();

                    break;

                case 7:
                    /* 1128 */
                    name = "Ping Timer";
                    /* 1129 */
                    scheduledPool = Timer.PingTimer.getInstance().getSES();

                    break;

                default:
                    /* 1132 */
                    return 0;

            }
            /* 1134 */
            if (scheduledPool != null) {
                /* 1135 */
                scheduledPool.purge();
                /* 1136 */
                c.getPlayer().dropMessage(-11, "--------------------------------------------------------------------");
                /* 1137 */
                c.getPlayer().dropMessage(-11, "清理的线程名称 : " + name + " 输入的参数: " + poolId);
                /* 1138 */
                c.getPlayer().dropMessage(-11, "ActiveCount: ...... " + StringUtil.getRightPaddedStr(scheduledPool.getActiveCount(), ' ', 8) + " 注释: 主动执行任务的线程数");
                /* 1139 */
                c.getPlayer().dropMessage(-11, "CorePoolSize: ..... " + StringUtil.getRightPaddedStr(scheduledPool.getCorePoolSize(), ' ', 8) + " 注释: 核心线程数");
                /* 1140 */
                c.getPlayer().dropMessage(-11, "PoolSize: ......... " + StringUtil.getRightPaddedStr(scheduledPool.getPoolSize(), ' ', 8) + " 注释: 池中的当前启动的核心线程数");
                /* 1141 */
                c.getPlayer().dropMessage(-11, "LargestPoolSize: .. " + StringUtil.getRightPaddedStr(scheduledPool.getLargestPoolSize(), ' ', 8) + " 注释: 曾经同时位于池中的最大核心线程数");
                /* 1142 */
                c.getPlayer().dropMessage(-11, "MaximumPoolSize: .. " + StringUtil.getRightPaddedStr(scheduledPool.getMaximumPoolSize(), ' ', 8) + " 注释: 允许的最大核心线程数线程数");
                /* 1143 */
                c.getPlayer().dropMessage(-11, "CompletedTaskCount: " + StringUtil.getRightPaddedStr(scheduledPool.getCompletedTaskCount(), ' ', 8) + " 注释: 已完成执行的线程任务总数");
                /* 1144 */
                c.getPlayer().dropMessage(-11, "QueuedTaskCount: ..." + StringUtil.getRightPaddedStr(scheduledPool.getQueue().size(), ' ', 8) + " 注释: 使用的任务队列数量");
                /* 1145 */
                c.getPlayer().dropMessage(-11, "TaskCount: ........ " + StringUtil.getRightPaddedStr(scheduledPool.getTaskCount(), ' ', 8) + " 注释: 计划执行的线程任务总数");

            }
            /* 1147 */
            return 1;

        }

    }



       public static class resetbanip
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /* 1156 */
            MapleServerHandler.BlockIPList.clear();
            /* 1157 */
            c.getPlayer().dropMessage(6, "清除完毕.");
            /* 1158 */
            return 1;

        }

    }



       public static class resetskill
             extends CommandExecute
             {

        public String getParameter() {
            /* 1167 */
            return "[技能ID]";

        }




        public int execute(MapleClient c, String[] splitted) {
            /* 1172 */
            if (splitted.length != 2 || !StringUtil.isNumber(splitted[1])) {
                /* 1173 */
                c.getPlayer().dropMessage(5, "格式: !resetskill " + getParameter());
                /* 1174 */
                return 0;

            }
            /* 1176 */
            SkillFactory.reloadSkills(Integer.valueOf(splitted[1]).intValue());
            /* 1177 */
            c.getPlayer().dropMessage(6, "重载完毕.");
            /* 1178 */
            return 1;

        }

    }


       public static class banskill
             extends CommandExecute {

        public String getParameter() {
            /* 1185 */
            return "[技能ID]";

        }




        public int execute(MapleClient c, String[] splitted) {
            /* 1190 */
            if (splitted.length != 2 || !StringUtil.isNumber(splitted[1])) {
                /* 1191 */
                c.getPlayer().dropMessage(5, "格式: !禁止技能 " + getParameter());
                /* 1192 */
                return 0;

            }
            /* 1194 */
            int skillid = Integer.valueOf(splitted[1]).intValue();
            /* 1195 */
            if (SkillFactory.getSkill(skillid) == null) {
                /* 1196 */
                c.getPlayer().dropMessage(5, "不存在的技能,无法禁用");
                /* 1197 */
                return 0;

            }
            /* 1199 */
            if (!SkillFactory.addBlockedSkill(Integer.valueOf(splitted[1]).intValue())) {
                /* 1200 */
                c.getPlayer().dropMessage(5, "禁用完毕.");
                /* 1201 */
                return 0;

            }
            /* 1203 */
            c.getPlayer().dropMessage(5, "已经禁用的技能ID");

            /* 1205 */
            return 1;

        }

    }


       public static class reloadGMCommand
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /* 1213 */
            CommandProcessor.init();
            /* 1214 */
            c.getPlayer().dropMessage(5, "GM命令重载完毕.");
            /* 1215 */
            return 1;

        }

    }































       public static class ReLoadHandlerScript
             extends CommandExecute
             {

        public int execute(MapleClient c, String[] splitted) {
            /* 1252 */
            HandlerScriptManager.getInstance().init();
            /* 1253 */
            c.getPlayer().dropMessage("handler脚本重载完毕。");
            /* 1254 */
            return 1;

        }

    }

}


/* Location:              C:\PGX\Server.jar!\server\commands\AdminCommand.class
 * Java compiler version: 8 (52.0)
 * JD-Core Version:       1.1.3
 */